Many search applications exist today, for example for searching the internet, databases (e.g. for online shopping applications), file directories (e.g. for particular files or for selection of playlists) etc. Whilst some of these applications permit a user to search against more than one criterion, (e.g. filename contains “template” and was created within the last seven days), few provide the user with the ability to prioritize different criteria, which may be particularly advantageous to the user in some applications (e.g. on an online shopping website, where a user ideally would like to buy a red car which is less than one year old, but where color is less important than age).
Where applications do provide the ability to prioritize criteria, little flexibility is provided to enable the user to set up the search criteria. For example, a media player may provide a user with the following options:                Create an audio playlist where:                    Tracks are stored in <file location>            <add criteria here>                        And also include:                    <add criteria here>                        And apply the following restrictions:                    <add criteria here>This user interface provides the user with three implicit levels of prioritization of the criteria that are selected, with the first set of criteria (listed after “create an audio playlist where:”) being more important than the second set of criteria (listed after “and also include:”), which are in turn more important than the third set of criteria (listed after “and apply the following restrictions”).                        
Mathematical optimization tools exist to enable a user to define a complex objective function, which can express the relative importance of a number of constraints. However, setting up the objective function using such tools is a complicated process even for a skilled user and unless set up correctly, the objective function may provide misleading or incorrect results when used for optimization.